/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2012-01-08     bernard      first version.
 * 2014-07-12     bernard      Add workqueue implementation.
 */

#ifndef __RT_DEVICE_H__
#define __RT_DEVICE_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned long 	rt_size_t;

typedef signed   char                   rt_int8_t;      /**<  8bit integer type */
typedef signed   short                  rt_int16_t;     /**< 16bit integer type */
typedef signed   int                    rt_int32_t;     /**< 32bit integer type */
typedef unsigned char                   rt_uint8_t;     /**<  8bit unsigned integer type */
typedef unsigned short                  rt_uint16_t;    /**< 16bit unsigned integer type */
typedef unsigned int                    rt_uint32_t;    /**< 32bit unsigned integer type */
#define rt_inline                  		 static __inline
	
#define RT_NULL                         (0)

#define RT_ALIGN_DOWN(size, align)      ((size) & ~((align) - 1))

#define RT_ALIGN_SIZE 4

void rt_assert_set_hook(void (*hook)(const char *ex, const char *func, rt_size_t line));

#define RT_USING_HEAP 1

#ifdef __cplusplus
}
#endif

#endif /* __RT_DEVICE_H__ */
